/*
 * @Author: yli
 * @Date: 2021-05-02 21:46:56
 * @LastEditors: yli
 * @LastEditTime: 2021-05-03 00:10:13
 * @Description: file content
 */

#include "logic_output.h"

#include "main.h"
#include "stm32f4xx_ll_gpio.h"

void SetOutputLow(OutputPort output_port)
{
    GPIO_TypeDef *GPIOx;
    uint32_t PinMask;
    switch (output_port)
    {
    case A:
        GPIOx = A_GPIO_Port;
        PinMask = A_Pin;
        break;
    case B:
        GPIOx = B_GPIO_Port;
        PinMask = B_Pin;
        break;
    case C:
        GPIOx = C_GPIO_Port;
        PinMask = C_Pin;
        break;
    }
    LL_GPIO_ResetOutputPin(GPIOx, PinMask);
}

void SetOutputHigh(OutputPort output_port)
{
    GPIO_TypeDef *GPIOx;
    uint32_t PinMask;
    switch (output_port)
    {
    case A:
        GPIOx = A_GPIO_Port;
        PinMask = A_Pin;
        break;
    case B:
        GPIOx = B_GPIO_Port;
        PinMask = B_Pin;
        break;
    case C:
        GPIOx = C_GPIO_Port;
        PinMask = C_Pin;
        break;
    }
    LL_GPIO_SetOutputPin(GPIOx, PinMask);
}
